#ifndef inputdev_func_hpp
#define inputdev_func_hpp



using namespace std;


#include <iostream>
#include <string>
#include <inputmanager.hpp>

class inputdevFactory{

public:
    inputmanager* create(char* p);
    
};


/******************* 为上层应用提供的API *********************/
typedef int (*p_inmanager_cancel_func)(char* devtype, input_dev_param* param);

extern map<p_inmanager_cancel_func, char*> cancel_funcs;


void inmanager_create_alldevs(void);


int inmanager_notify_signal(char* devtype, input_dev_param *param);

int inmanager_notify_param_handle(char* devtype, input_dev_param *param);

string combine_devtypes(int num, ...);


void inmanager_do_cancel_func(int execption_info);

int inmanager_cmd(char* devtype, e_inputmanager_cmd cmd, input_dev_param *param);


void set_timer2callback_inputdevfunc(int seconds);

void cancel_the_timer_inputdevfunc(void);


#endif 

